זוכרים את הפעם האחרונה שבה קרסה לכם תוכנה מול העיניים? פעם זה היה קורה הרבה יותר מהיום. בעבר תוכונת היו קורסות ונכשלות, חורקות ומזייפות בעיקר בגלל שלא היו בודקי תוכנה ברמה שיש היום בשוק. בעבר הממש לא רחוק בדיקות תוכנה לא ממש היה מקצוע מבוסס. הרבה תוכניתנים שהיו כותבים תוכנות היו גם עושים בעצמם בדיקה חפיניקית לתוכנה, ומסיימים בזה.
הבעיה היא שככל שרמת המורכבות והסיבוכיות של התוכנות עלתה, ככה גם הקושי בבדיקתן עלה. תוכנה שמכילה כמה אלפי שורות קוד יכולה עוד איכשהו לעבור בדיקה מחופפת, אבל תוכנה שהיא בת כמה מיליוני שורות קוד או יותר, כמעט בוודאות תיכשל בביצוע ייעודה אם היא לא תעבור דרך הידיים המיומנות של בודק תוכנה קודם לשיחרורה לשוק.
מה בעצם עושים בודקי תוכנה? טוב, אפשר להגיד בגדול שהם מעבירים את התוכנה דרך מספר מבחנים על מנת לבדוק האם היא מבצעת את ייעודה בצורה הטובה ביותר, אבל האמת היא שזה יהיה בערך כמו להגיד שמה שרופא עושה זה לרפא אנשים.
תוכנה היא לא בדיוק יחידה אחת שמתפקדת בכוחות עצמה, היא מורכבת מהרבה תת גופים ותת יחידות שיוצרים ביחד את התוכנה. בודק התוכנה צריך לבחון את התוכנה שמגיע הלידיו מכמה כיוונים: גם ברמת הכללית על מנת לראות כיצד התוכנה מתפקדת, וגם ברמת התת יחידות על מנת לראות שהכל פועל כשורה ברמת הקוד.
בודקי תוכנה מבצעים סוגים שונים של מבחנים על כל תוכנה, כל מבחן מטרתו לבדוק אלמנט אחר בתפקוד התוכנה. חלק מהמבחנים נעשים על מנת להעמיס על תוכנה מסויימת באופן מכוון, על מנת לראות איפה ומתי היא קורסת. מבחן זה חשוב מאחר והמשתמש הביתי לא חושב כמו תוכניתן והוא עלול להביא את התוכנה לקצה גבול היכולת שלה כמו שמי שיצר את התוכנה במקור לא חשב שבכלל אפשרי.
תפקידם של בודקי התוכנה הוא לקחת את התוכנה למקומות שמי שהרכיב אותה לא בהכרח חשב שהיא תגיע, ולראות האם היא עומדת בעומסים במקרים היותר קיצוניים של שימוש בה, בהתחשב בכל צורות העומס האפשריות.
צורה נוספת של בדיקה, הינה בדיקת אלפא/ביטא. בבדיקה זו אנו נותנים לקהל משתמשים מצומצם ברמה כזאת או אחרת לנסות ולהשתמש בתוכנה, ולאחר שמספיק זמן עובר אוספים נתונים על הבעיות השונות שמתגלות בתוכנה. היתרון של שיטת הבדיקה הזו טמון בעיקר בקנה המידה הרחב שבה התוכנה מורצת, נבדקת ונבחנת.